/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controlador.Service.Produccion;
import Controlador.Bean.Produccion.ProductoxFase;
import Data.config.SessionFac;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
/**
 *
 * @author Nadhia
 */
public class ServicioProductoxFase {
    
    //CARGA MASIVA
    
     public void  cargaMasivaProdxFase(String archivo,SqlSession sqlsession){
        
	BufferedReader br = null;
	String line = "";
	String cvsSplitBy = ",";
       	try {
 
		br = new BufferedReader(new FileReader(archivo));
		while ((line = br.readLine()) != null) {
		        // use comma as separator
			String[] datos = line.split(cvsSplitBy);
                        ProductoxFase pxf= new ProductoxFase();
                        pxf.setCantidad(Double.parseDouble(datos[3]));
                        pxf.setEntradaSalida(datos[2]);
                        pxf.setEstado(datos[4]);
                        pxf.setIdFase(datos[1]);
                        pxf.setIdProducto(datos[0]);
                                           
                        guardar2(pxf, sqlsession);
                        
                        
                                         }       
                                                                        
	} catch (Exception e) {
		e.printStackTrace();                
	} finally {            
		if (br != null) {
			try {
				br.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}        
      }
    
    
      
    public void guardar2(ProductoxFase productoxfase,SqlSession sqlsession) throws Exception {
            sqlsession.insert("Data.Produccion.ServicioProductoxFase.guardar2", productoxfase);
        
    }
     
     
    
    
    public void guardar(ProductoxFase productoxfase) throws Exception {
            SqlSession sqlsession = SessionFac.SessionFactory().openSession();
//            fase.setIdFase(obtenerIdSiguiente(fase.getIdFase(), sqlsession));
            sqlsession.insert("Data.Produccion.ServicioProductoxFase.guardar", productoxfase);
            sqlsession.commit();
            sqlsession.close();
        
    }
    
    public List<ProductoxFase> seleccionarTodo(){
        List<ProductoxFase> data;
        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()) {
            data = (List)sqlsession.selectList("Data.Produccion.ServicioProductoxFase.seleccionarTodo");
            sqlsession.close();
        }
        return data;
    }
    
    public List<ProductoxFase> buscarPxF(String id){
        List<ProductoxFase> data;
        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()) {
            data = (List)sqlsession.selectList("Data.Produccion.ServicioProductoxFase.buscarPxF", id);
            sqlsession.close();
        }
        return data;
    }
    
    
      
       
    public List<ProductoxFase> filtrarProductoxFase(String id, String nombre){
        List<ProductoxFase> data;
        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()) {
            HashMap<String, String> hm = new HashMap<>();
            hm.put("id", "%"+id+"%");
            hm.put("", "%"+nombre+"%");
            data = (List)sqlsession.selectList("Data.Produccion.ServicioProductoxFase.filtrarProductoxFase", hm);
            sqlsession.close();
        }
        return data;
    }
    
//    public void eliminar(String IdP,String IdF){
//        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()) {
//            sqlsession.update("Data.Produccion.ServicioProductoxFase.eliminar", IdP, IdF);
//            sqlsession.commit();
//            sqlsession.close();
//        }
//    }
    
  public void actualizar(ProductoxFase productoxfase){
        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()) {
            sqlsession.update("Data.Produccion.ServicioProductoxFase.actualizar", productoxfase);
            sqlsession.commit();
            sqlsession.close();
        }
    }
  public void eliminar(ProductoxFase productoxfase){
        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()) {
            sqlsession.update("Data.Produccion.ServicioProductoxFase.eliminar", productoxfase);
            sqlsession.commit();
            sqlsession.close();
        }
    }  
  
  int cuentaSal(String id ) {
       int cont;
       SqlSession sqlsession = SessionFac.SessionFactory().openSession();
       cont = sqlsession.selectOne("Data.Produccion.ServicioProductoxFase.contar",id);
       sqlsession.close();
       return cont;
    }
    
}
